package br.jm.mala.service;

import br.jm.mala.entity.User;
import java.util.List;
import java.util.Map;

public interface LoginService {
    
    User login(String username, String password) throws IllegalArgumentException;
    
    void create(User entidade);

    void edit(User entidade);

    void destroy(User entidade);

    void executeUpdate(String oql);

    User getPorId(Object id);

    // Consultada manuais dinamicas
    List<User> get(String oql);

    List<User> get(String oql, List<String> campos);

    List<User> get(String oql, Object... campos);

    // Consultada com query estatucas
    List<User> getPorQuery(String query);

    List<User> getPorQuery(String query, Object... campos);

    int getCount(String entidade);

    int getCount(String entidade, String where);

    int getCountQuery(String oql);

    List<User> getNative(String cTabela, int first, int pageSize, String sortField, boolean sortOrder, Map<String, String> filters, String cParametroSQL);

    List<User> getNative(String cTabela, int first, int pageSize, String sortField, boolean sortOrder, Map<String, String> filters, String cParametroSQL, String cFiltro);

    List<User> getNativeFiltroList(String cSql);
            
    User getNativeFiltro(String cSql);

    User getEntidade(String oql, List<String> campos);
}
